﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WeChatBotSDK.Utilities
{
    public static class 微信工具
    {
        /// <summary>
        /// 生成艾特格式的变量字符串。
        /// </summary>
        /// <param name="wxid">对方的 wxid，示例：wxid_ephbxwk13k0022。如果要艾特全体，请填写 "all"。</param>
        /// <param name="nick">对方的昵称，可以为空；为空时根据 isAuto 决定是否自动填充。</param>
        /// <param name="isAuto">是否自动填充对方昵称。<br/>true 表示自动填充，false 表示 nick 的内容即为发送内容。</param>
        /// <returns>返回符合规则的艾特格式字符串。</returns>
        /// <exception cref="ArgumentException">当 wxid 或 isAuto 为空时抛出。</exception>
        public static string GenerateAtString(string wxid, string nick, bool isAuto)
        {
            // 参数校验
            if (string.IsNullOrWhiteSpace(wxid))
            {
                throw new ArgumentException("wxid 不能为空，请传入有效的 wxid 值。", nameof(wxid));
            }

            // `isAuto` 转为字符串形式
            var isAutoValue = isAuto ? "true" : "false";

            // 构建艾特变量的格式字符串
            var atString = $"[@,wxid={wxid},nick={nick ?? string.Empty},isAuto={isAutoValue}]";

            return atString;
        }
    }
}
